select concat( concat(concat(':::::', ^Anno Bollettazione aaaa;N;NUMERICO;1^^),concat('::::',^Anno Bollettazione aaaa;N;NUMERICO;1^^-1)),
concat(':::',^Anno Bollettazione aaaa;N;NUMERICO;1^^+1))  " "
from dual
 union all
select'OPZIONE:VOCE:MESE:F1 Kw:F2 Kw:F3 Kw:Tot KW:F1 Kw:F2 Kw:F3 Kw:Tot Kw:F1 Kw:F2 Kw:F3 Kw:Tot Kw'  x from dual
union all
select  
concat(
concat(
concat(
concat(
concat(opzione,':'),
concat(voce,':')),
concat(
concat(des_mese,':'),
concat(concat(concat(qta_f1,':'),concat(qta_f2,':')),concat(qta_f3,':')))),
concat ((nvl(qta_f1,0)+nvl(qta_f2,0)+nvl(qta_f3,0)),':')),


concat(
concat(
concat(concat(concat(qta_f1_anno_pre,':'),concat(qta_f2_anno_pre,':')),concat(qta_f3_anno_pre,':')),
concat(nvl(qta_f1_anno_pre,0)+nvl(qta_f2_anno_pre,0)+nvl(qta_f3_anno_pre,0),':')),
 concat(
concat(concat(concat(qta_f1_anno_suc,':'),concat(qta_f2_anno_suc,':')),concat( qta_f2_anno_suc,':')),
nvl(qta_f1_anno_suc,0)+nvl(qta_f2_anno_suc,0)+nvl(qta_f3_anno_suc,0))


) ) "y"
from (
select 
b.opzione,b.PROGRESSIVO_VOCE VOCE,

b.des_mese,
(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F1' 
and a.anno = '^Anno Bollettazione aaaa;N;NUMERICO;1^^'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f1,

(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F2'
     and a.anno ='^Anno Bollettazione aaaa;N;NUMERICO;1^^'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f2,
(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F3'
   and a.anno ='^Anno Bollettazione aaaa;N;NUMERICO;1^^'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f3,




---*********************************************************************************************************************************************
(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F1' 
 and a.anno ='Ante'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f1_anno_pre,

(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F2'
     and a.anno ='Ante'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f2_anno_pre,
(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F3'
     and a.anno ='Ante'
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f3_anno_pre,


(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F1' 
        and a.anno = to_char(^Anno Bollettazione aaaa;N;NUMERICO;1^^+1)
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f1_anno_suc,

(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F2'
      and a.anno = to_char(^Anno Bollettazione aaaa;N;NUMERICO;1^^+1)
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f2_anno_suc,
(SELECT SUM(a.quantita) 

FROM ASM_PEREQUAZIONE_02 a
WHERE 
     a.mf='F3'
      and a.anno = to_char(^Anno Bollettazione aaaa;N;NUMERICO;1^^+1)
and      a.mese=b.mese
--and a.anno=b.anno
and a.opzione=b.opzione
and    a.progressivo_voce=b.progressivo_voce
GROUP BY 
A.opzione,A.PROGRESSIVO_VOCE ,A.ANNO,A.MESE) QTA_f3_anno_suc

from 
(SELECT distinct A.opzione,A.PROGRESSIVO_VOCE,a.mese,a.des_mese

FROM ASM_PEREQUAZIONE_02 a) b
order by 
b.opzione,b.PROGRESSIVO_VOCE ,
b.mese
)
where 
QTA_f1 is not null 
or QTA_f2 is not null 
or QTA_f3 is not null 
or QTA_f1_anno_pre is not null 
or QTA_f2_anno_pre is not null 
or QTA_f3_anno_pre is not null 
or QTA_f1_anno_suc is not null 
or QTA_f2_anno_suc is not null 
or QTA_f3_anno_suc is not null 